iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Software Development

資料結構 - 我好想懂阿!30 天系列系列 第 4

資料結構 - 我好想懂阿!30 天系列 (04) - Binary Tree 二元樹

  • 分享至 

  • xImage
  •  

前言

今天要解釋的部分就是 Binary Tree 二元樹,也可以簡稱為 BT,這邊要特別注意一點,BT 與前一章節所提的 Tree 是不一樣的!

二元樹的定義

與 Tree 不同的點是,二元樹可以為空,然而樹卻不能為空,此外若二元樹非空,則擁有以下特性

  1. 有 Root, Left subtree, right subtree
  2. Left subtree, right subtree 也必須都為二元樹
    (註) 在二元樹左右是有差異的,在樹則沒有差異

二元樹的種類

由於二元樹長相非常多樣,可以先將二元樹歸類為下列幾類

  1. Skewed BT
    分為左斜(只有左子點)跟右斜(只有右子點)
    若 K 個資料,則 K即高度
  2. Complete BT
    令高度=k, 節點數=n 須滿足以下兩點
    https://chart.googleapis.com/chart?cht=tx&chl=%20%202%5E%7Bk-1%7D-1%20%3C%3D%20n%20%3C%3D%202%5E%7Bk%7D-1
    node 增長方式為上至下,左至右增長
  3. Full BT
    高度為 k 並擁有 https://chart.googleapis.com/chart?cht=tx&chl=%242%5Ek-1%24 個子點的 B.T
  4. Strict BT
    每個 non-leaf 節點必須都有兩個 child

二元樹的三個定理

根據 Complete BT 以及 Full BT 的長相,可以發現它的高度為最小樹高,而 Skewed BT 的高度為最大樹高

  1. 若給予 n 個葉節點,將其想像成 Full BT,且高度為 i 可以得出 https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7Bi-1%7D%3Dn
    此式,在雙方取 log 即可得最小樹高 i
  2. 若給予 n 個節點總數,且高度為 i 可以得出 https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7Bi%7D-1%3Dn
    在雙方取 log 即可得最小樹高 i
  3. https://chart.googleapis.com/chart?cht=tx&chl=n_%7B0%7D%3Dn_%7B2%7D%2B1
    可以由節點總數 = Degree-0 Nodes + Degree-1 Nodes + Degree-2 Nodes 所組成,也等同於 B(有效連結)+1
    https://chart.googleapis.com/chart?cht=tx&chl=B%2B1%3D0n_%7B0%7D%2B1n_%7B1%7D%2B2*n_%7B2%7D%2B1%20%20%3D%20n_0%20%2Bn_%7B1%7D%2Bn_2
    只要做移向便可以得到此定理的式子!

上一篇
資料結構 - 我好想懂阿!30 天系列 (03) - Tree 樹
下一篇
資料結構 - 我好想懂阿!30 天系列 (05) - Binary Tree 二元樹 (2)
系列文
資料結構 - 我好想懂阿!30 天系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言